MariaDB SUBSTRING_INDEX() 函数返回分隔符出现次数之前字符串的子字符串。
语法
SUBSTRING_INDEX(string, delimiter, number)
参数
string | 必填。 指定源字符串。 |
delimiter | 必填。 指定要在字符串中搜索的分隔符。 |
number | 必填。 指定搜索分隔符的次数。它可以是正数或负数:
|
返回值
返回分隔符出现次数之前字符串的子字符串。
示例1:
下面的示例显示了 SUBSTRING_INDEX() 函数的用法。
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 0);
Result: NULL
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 1);
Result: 'www'
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 2);
Result: 'www.yxjc123'
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 3);
Result: 'www.yxjc123.com'
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', 4);
Result: 'www.yxjc123.com'
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', -1);
Result: 'com'
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', -2);
Result: 'yxjc123.com'
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', -3);
Result: 'www.yxjc123.com'
SELECT SUBSTRING_INDEX('www.yxjc123.com', '.', -4);
Result: 'www.yxjc123.com'
示例 2:
考虑一个名为 Orders 的数据库表 包含以下记录:
OrderQuantity | Price | IP_Address |
---|---|---|
100 | 1.58 | 76.240.249.145 |
120 | 1.61 | 127.255.255.255 |
125 | 1.78 | 191.70.78.255 |
50 | 1.80 | 223.241.209.223 |
200 | 1.72 | 129.144.50.56 |
在下面的查询中,SUBSTRING_INDEX() 函数用于提取 中提到的 IP 地址的网络部分和主机部分IP_Address 列。
SELECT *,
SUBSTRING_INDEX(IP_Address, '.', 2) AS Network_Part,
SUBSTRING_INDEX(IP_Address, '.', -2) AS Host_Part
FROM Employee;
这将产生如下所示的结果:
OrderQuantity | Price | IP_Address | Network_Part | Host_Part |
---|---|---|---|---|
100 | 1.58 | 76.240.249.145 | 76.240 | 249.145 |
120 | 1.61 | 127.255.255.255 | 127.255 | 255.255 |
125 | 1.78 | 191.70.78.255 | 191.70 | 78.255 |
50 | 1.80 | 223.241.209.223 | 223.241 | 209.223 |
200 | 1.72 | 129.144.50.56 | 129.144 | 50.56 |